package com.itheima.ai.controller;

import com.itheima.ai.config.component.agent.YuManus;
import jakarta.annotation.Resource;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.ai.tool.ToolCallback;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;

@RestController
@RequestMapping("/ai")
public class AgentController {
    @Resource
    private ToolCallback[] allTools;

    //spring-ai-alibaba-starter默认初始化了（用的是dashscope自动配置的阿里大模型）
//    @Resource
//    private ChatModel dashscopeChatModel;

    //我们是openai，所以是openAiChatModel
    //其他的 ollamaChatModel、alibabaOpenAiChatModel
    @Resource
    private ChatModel openAiChatModel;

    /**
     * 流式调用 Manus 超级智能体（本地能调用的tool服务）
     *
     * @param message
     * @return
     */
    @GetMapping("/tool")
    public SseEmitter doChatWithManus(String message) {
        YuManus yuManus = new YuManus(allTools, openAiChatModel);
        return yuManus.runStream(message);
    }
}
